package com.zhangye.test.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.codec.binary.Base64;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSON;
import com.zhangye.test.model.Company;
import com.zhangye.test.util.PageInfo;
import com.zhangye.test.util.StringUtils;
import com.zhangye.test.util.cloudUtils;


@Controller
@RequestMapping("admin/company")
public class CompanyController extends BaseController{

	
	/**
	 * 添加页面
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:02:36
	 */
	@RequestMapping("/insert/{id}")
	public String insert(@PathVariable Integer id,Model model){
		Company c = companyService.selectByPrimaryKey(id);
		model.addAttribute("company",c);
		return "admin/company/insert";
	}

	
	/**
	 * ar列表
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:02:28
	 */
	@RequestMapping("/list")
	public String list(Model model){
		return "admin/company/list";
	}
	
	
	/**
	 * 分页显示 
	 * 作者：张叶
	 * 时间：2016年9月7日 上午11:58:15
	 */
	@ResponseBody
	@RequestMapping(value = "arJson" , method = RequestMethod.POST)
	public JSON arJson(PageInfo pageInfo, Integer rows, Integer page,
			String sidx, String sord, Model model, String aName) {
		// 分页信息
		if (pageInfo == null) {
			pageInfo = new PageInfo();
		}
		if (pageInfo.getPage() < 2
				|| pageInfo.getPage() >= pageInfo.getTotalPage()) {
			pageInfo.setCount(0);
		}
		if (rows != null) {// 每页显示条数
			pageInfo.setPageSize(rows);
		}
		if (page != null) {// 当前页
			pageInfo.setPage(page);
		}

		// 排序
		String order = "order by target_id , update_date ";
		if (sidx != null && sidx != "") {// 排序字段
			order += "," + sidx + " ";
			if (sord != null && sord != "") {// 排序
				order += sord;
			}
		}

		// 搜索条件
		String where = "1 = 1 ";
		if(aName != null && !"".equals(aName)){
			where += " name like '%" + aName + "%'";
		}
		List<Map<String, Object>> list = companyService.selectByPage(pageInfo,where, order);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		for(int i = 0 ; i < list.size() ; i ++){
			Date createTime = (Date) list.get(i).get("update_date");
			list.get(i).put("update_date", sdf.format(createTime));
		}
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("total", pageInfo.getTotalPage());
		data.put("list", list);
		return (JSON) JSON.toJSON(data);
	}

	
	/**
	 * 添加页面
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:02:36
	 */
	@RequestMapping("/addPage")
	public String addPage(Model model){
		return "admin/company/add";
	}

	
	/**
	 * 添加功能
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:06:57
	 * @throws Exception 
	 */
	@ResponseBody
	@RequestMapping(value = "/add", method = RequestMethod.POST)
	public String add(@RequestParam(value = "images", required = false) MultipartFile images,
			@RequestParam(value = "metas", required = false) MultipartFile metas,Company c) {
		try {
			int i = easyArService.insertCompany(c,images,metas);
			if(i == 0 ){
				return "success";
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "fail";
	}

	
	public static String encode(final byte[] bytes) {  
		return new String(Base64.encodeBase64(bytes));  
	}	


	/**
	 * 上传视频
	 * 作者： 张叶
	 * 创建时间：2018年6月26日  上午10:48:30
	 */
	@ResponseBody
	@RequestMapping(value = "/upload", method = RequestMethod.POST)
	public String updateFile(@RequestParam(value = "file", required = false) MultipartFile file,
			int cId,String showDate,String name) throws Exception {
		try {
			Company c = companyService.selectByPrimaryKey(cId);
			String url = qiniuService.upload("file",file.getOriginalFilename(), file.getBytes());
			url = url + "," +  c.getImageUuid();
			c.setId(null);
			c.setCreateAt(new Date());
			c.setName(name);
			c.setVideoUrl(url);
			c.setUpdateDate(StringUtils.format(showDate, "yyyy-MM-dd HH:mm"));
			c.setActive(0);
			int i = companyService.insert(c);
			if (i > 0) {
				return "0";
			} else {
				return "1";
			}
		} catch (Exception e) {
			return "2";
		}
	}
	
	
	/**
	 * 删除
	 * 作者： 张叶
	 * 创建时间：2018年5月16日  上午9:57:52
	 */
	@ResponseBody
	@RequestMapping(value = "/del/{id}", method = RequestMethod.POST)
	public String delEasyAr(@PathVariable Integer id){
		String flag = "fail";
		try {
			Company c = companyService.selectByPrimaryKey(id);
			if(c != null && !"".equals(c)){
				int active = c.getActive();
				if(active == 1){
					cloudUtils.removeClouds(c.getTargetId());	
				}
				int i = companyService.deleteByPrimaryKey(c.getId());
				if(i > 0 ){
					flag =  "success";
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}
	
	
	/**
	 * 历史
	 * 作者： 张叶
	 * 创建时间：2018年6月26日  下午2:45:14
	 */
	@RequestMapping("/history/{id}")
	public String history(@PathVariable Integer id,Model model){
		Company c = companyService.selectByPrimaryKey(id);
		if(c != null && !"".equals(c)){
			String where = " and target_id = '" + c.getTargetId() + "' order by create_at";
			List<Company> list = companyService.selectByWhere(where);
			if(list.size() > 0 ){
				model.addAttribute("company",list);
			}
		}
		return "admin/company/history";
	}
	

}
